package com.woniuxy.dao;


import com.woniuxy.entity.UserInfo;
import com.woniuxy.utils.ConnectionUtil;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class UserInfoDao {
    public List<UserInfo> findAll(UserInfo userInfo) {
        Connection connection = ConnectionUtil.getConnection();
        String sql = "select * from userinfo where 1=1";
        //这里是为了方便以后的代码扩展性  true&&false 后面就不执行了  && 短路与(前面为false的时候，后面不执行)   || 短路或(前面为true的时候，后面不执行)
        if (!userInfo.getName().equals("")&&!userInfo.getName().equals("all")) {
            sql +=" and name like concat('%','"+userInfo.getName()+"','%')";
            System.out.println(sql);
        }
        //以后如果还有其他需求，直接继续if下去就行 留给你们完成！

        //用来存放，数据库查出的所有用户数据列表 只有一个list
        List<UserInfo> allUsers = new ArrayList<>();
        try {
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                //把每次指针指向的 那一行数据库的数据，通过构造方法，放入一个userInfo对象中
                //因为放在了循环里面，所以，每次循环都是新的对象
                UserInfo userInfo1 = new UserInfo(resultSet.getInt(1),resultSet.getString(2),
                        resultSet.getInt(3), resultSet.getString(4),
                        resultSet.getString(5), resultSet.getString(6),
                        resultSet.getString(7));
                allUsers.add(userInfo1);
            }
            return allUsers;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return allUsers;
    }
}
